package com.example

import org.jetbrains.exposed.dao.id.IntIdTable

object Distributors : IntIdTable() {
    val name = varchar("name", 50)

    val address = varchar("address", 50)
}

object CoalMarks : IntIdTable("coal_marks") {
    val name = varchar("name", 200)
}

object DistributorsToCoalMarks : IntIdTable("distributors_to_coal_marks") {
    val distributorId = integer("distributor_id")
        .uniqueIndex()
        .references(Distributors.id)

    val coalMarkId = integer("coal_mark_id")
        .uniqueIndex()
        .references(CoalMarks.id)

    val price = integer("price")
}

object Users : IntIdTable("users_order"){
    val name = varchar("name",200)
}

enum class OrderStatus {
   // Заказ в состоянии "Коризна", пользователь формирует заказ, добавляя позиции в "Корзину"
    PENDING,
    // Пользователь оформил заказ, в процессе доставки
    CHECKOUT,
    // Заказ выполнен (доставлен)
    COMPLETED
}

object Orders : IntIdTable("orders") {
    val user = integer("user_id")
        .references(Users.id)

    val status = enumerationByName<OrderStatus>("status", 25)

    val destination = varchar("destination",200)
}

object OrderItems : IntIdTable("order_items") {
    val distributorCoal = integer("distributor_coal_id")
        .references(DistributorsToCoalMarks.id)

    val order = integer("order_id")
        .references(Orders.id)

    val amountInKg = integer("amount_in_kg")
}
